package cn.edu.gzhmt.goods.dao;

import java.util.List;

import cn.edu.gzhmt.goods.domain.Goods;
import cn.edu.gzhmt.goods.domain.SortGoods;

/**
 * 商品dao层
 * @author azhuo
 *
 */
public interface IGoodsDao {

	/**
	 * 查询所有商品
	 * @return
	 */
	List<Goods> findAll();

	/**
	 * 通过id查询商品
	 * @param gid
	 * @return
	 */
	Goods findById(String gid);

	/**
	 * 按名称模糊查询
	 * @param gname
	 * @return
	 */
	List<Goods> findByName(String gname);

	/**
	 * 通过 分类id 查询商品
	 * @param cid
	 * @return
	 */
	List<Goods> findByCategoryId(String cid);

	/**
	 * 通过 分类id 查询商品
	 * 分页查询
	 * @param cid
	 * @param start
	 * @param pageSize
	 * @return
	 */
	List<Goods> findByCategoryIdLimit(String cid, int start, int pageSize);

	/**
	 * 通过gid删除商品
	 * 假删除
	 * @param gid
	 */
	void removeByGid(String gid);

	/**
	 * 多条件组合查询商品
	 * @param form
	 * @return
	 */
	List<Goods> findGoods(Goods form);

	/**
	 * 添加商品
	 * @param goods
	 */
	void addGoods(Goods goods);

	/**
	 * 修改商品
	 * @param formGoods
	 */
	void editGoods(Goods formGoods);

	/**
	 * 进行商品销售统计
	 * @return
	 */
	List<SortGoods> sellingOrderSortGoods();

	/**
	 * 按分类查询商品
	 * @param cid
	 * @return
	 */
	List<Goods> findGoodsByCid(String cid);

	/**
	 * 查询宣传商品
	 * @param promote
	 * @param limit 需要返回的行数
	 * @return
	 */
	List<Goods> findGoodsByPromote(String promote, int limit);

}
